from pydantic import BaseModel, Field, validator
from typing import Optional, List


class AddVideoKeyframeRequest(BaseModel):
    """添加视频关键帧请求模型"""

    # 核心参数
    draft_id: str = Field(..., description="草稿ID（必填，用于指定操作的草稿）")
    track_name: str = Field("video_main", description="轨道名称（选填，默认\"video_main\"，指定要添加关键帧的轨道）")

    # 单个关键帧参数（向后兼容）
    property_type: str = Field("alpha",
                               description="属性类型（选填，默认\"alpha\"不透明度，可选值如\"scale_x\"、\"rotation\"等）")
    time: float = Field(0.0, description="关键帧时间（秒，选填，默认0.0秒）")
    value: str = Field("1.0", description="属性值（选填，默认\"1.0\"，需根据property_type调整类型，如数字、字符串等）")

    # 批量关键帧参数（新增，优先使用）
    property_types: Optional[List[str]] = Field(None, description="属性类型列表（选填，数组形式，与times、values对应）")
    times: Optional[List[float]] = Field(None, description="时间列表（选填，数组形式，与property_types、values对应）")
    values: Optional[List[str]] = Field(None, description="值列表（选填，数组形式，与property_types、times对应）")

